package com.dongao.utils;

import java.lang.reflect.Type;
import java.util.LinkedList;

import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;

import com.dongao.model.Exam;
import com.dongao.model.LoginResult;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class JsonUtil {
	public static String JsonToString (String json,String key) {
		String str=null;
		try {  
		    JSONTokener jsonParser = new JSONTokener(json);  
		    // 此时还未读取任何json文本，直接读取就是一个JSONObject对象。  
		    // 如果此时的读取位置在"name" : 了，那么nextValue就是"yuanzhifei89"（String）  
		    JSONObject person = (JSONObject) jsonParser.nextValue();  
		    // 接下来的就是JSON对象的操作了  
		    str = person.getString(key);  
		} catch (JSONException ex) {  
		    // 异常处理代码  
		}  
		
		return str;
	}
	
	public static LoginResult fromJson(String json, LoginResult object) {
		Gson  gson = new Gson();
		object = gson.fromJson(json, object.getClass());
		
		return object;
	}
	
	public static LinkedList<Exam> parseCourseData(String json) {
		JSONTokener jsonParser;
		String data="";
		try {
			jsonParser = new JSONTokener(json);
			JSONObject jsonData = (JSONObject) jsonParser.nextValue();
			data = jsonData.getString("data");
		} catch (JSONException e) {
			e.printStackTrace();
		}
		
		Type type = new TypeToken<LinkedList<Exam>>(){}.getType();
		Gson gson = new Gson();
		LinkedList<Exam> exams = gson.fromJson(data, type);
		
		for (Exam exam : exams) {
			System.out.println(exam);
		}
		
		return exams;
	}
	
	public static void main(String[] args) {
		String json="{\"logined\":\"false\"}";
		String key="logined";
		String str = JsonToString(json,key);
		System.out.println(str);
	}
}
